home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs05.d81 / evsbasic.arc / EVSKEYWORDS.E-F < prev    next >
Text File  |  2009-10-10  |  9KB  |  236 lines

  1. ---------------------------------------
  2.  
  3. ELSE <line#/statements>
  4.  
  5. The ELSE statement can optionally follow an IF/THEN or IF/GOTO pair on the
  6. same program line.  Statements or line numbers following an ELSE behave
  7. exactly as they do when following a THEN or GOTO, but will be executed only
  8. when the IF condition is false.  If the condition is true, only statements
  9. or line numbers between THEN and ELSE will be executed.
  10.  
  11. If an ELSE statement appears on a program line without a preceeding IF/THEN
  12. or IF/GOTO, the ELSE and everything after it on the line will be treated as
  13. a REMark and ignored.
  14.  
  15. Examples:
  16.  
  17. 10 IF A/2 = INT(A/2) THEN PRINT "EVEN": ELSE PRINT "ODD"
  18. 20 IF A>100 THEN 90: ELSE IF A>50 THEN 80: ELSE 70
  19. 30 IF A>50 THEN IF A>100 THEN 90: ELSE 80: ELSE 70
  20.  
  21. ---------------------------------------
  22.  
  23. ENVELOPE <voice# [,<sum>]> [,<att> [,<dec> [,<sus> [,<rel> [,<pnt>]]]]]
  24.  
  25. The ENVELOPE statement defines an attack/decay/sustain/release (ADSR)
  26. envelope for one or more voices.  Together these parameters control how the
  27. volume of a tone produced by a voice changes with time.
  28.  
  29. EVS Basic numbers the three voices produced by the SID chip as 1, 2, and 3.
  30. Any one of these three voices can be affected by using its number as
  31. <voice#>.  In this case <sum> is not used and should not be present.  To
  32. affect more than one voice at a time, 0 is used as the <voice#> together
  33. with <sum>.  Each voice in the <sum> is given the all parameters that
  34. follow in the statement.  <Sum> is calculated by starting with zero and
  35. adding 1 if voice 1 is to be included, 2 for voice 2, and 4 for voice 3.
  36. <Sum> has a maximum value of 7, which would affect all three voices at once
  37. (1+2+4).
  38.  
  39. The last five parameters of ENVELOPE control the attack rate, decay rate,
  40. sustain level, release rate, and release point.  All may range in value
  41. from 0 to 15.  The default value for all five parameters for all three
  42. voices is zero, the shortest times and proportions possible.
  43.  
  44. The attack rate determines how fast volume rises to its maximum level after
  45. a tone begins.  The decay rate is how fast the volume then drops to its
  46. sustained volume.   The sustain level is the proportion of the maximum
  47. volume that the sustained volume will be.  The release rate is how quickly
  48. the volume drops to zero after the tone is released.  The release point
  49. determines how long before the end of the tone's duration it is released
  50. and the release portion of the envelope begins to be heard.
  51.  
  52. Parameters not explicitly set by an ENVELOPE statement retain their current
  53. values.
  54.  
  55. Examples:
  56.  
  57. 10 ENVELOPE 1, 3, 4, 15, 6, 2
  58. 20 ENVELOPE I, AT(I), DC(I), SU(I), RE(I), PN(I)
  59. 30 ENVELOPE 0, 7, , , 15
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. ENVELOPE Time Values  (milliseconds)
  68. Value   Attack   Decay/Release  Point
  69.  
  70.   0         2           6          0
  71.   1         8          24         17
  72.   2        16          48         33
  73.   3        24          72         50
  74.   4        38         114         67
  75.   5        56         168         83
  76.   6        68         204        100
  77.   7        80         240        117
  78.   8       100         300        133
  79.   9       250         750        150
  80.  10       500        1500        167
  81.  11       800        2400        183
  82.  12      1000        3000        200
  83.  13      3000        9000        217
  84.  14      5000       15000        233
  85.  15      8000       24000        250
  86.  
  87. ---------------------------------------
  88.  
  89. ERASE <xpos>, <ypos>
  90.  
  91. Clears a rectangular block of the screen using the specified <xpos>, <ypos>
  92. as one corner of the block and the current cursor position as the
  93. diagonally opposite corner.  After the block is cleared the cursor is
  94. placed at the upper left corner of the block.
  95.  
  96. ERASE functions in all graphic modes.  In text modes <xpos>, <ypos> ranges
  97. from 0, 0 to 39, 24.  In bitmap modes the exact range of <xpos>, <ypos>
  98. depends on the current logical screen coordinates.  The default range is 0,
  99. 0 to 319, 199.
  100.  
  101. Examples:
  102.  
  103. 10 LOCATE 10, 10:  ERASE 20, 20
  104. 20 ERASE X+20, Y*5
  105.  
  106. ---------------------------------------
  107.  
  108. EXIT
  109.  
  110. The EXIT statement forces an immediate unconditional branch out of the
  111. currently active DO/LOOP.  Program execution continues with the statement
  112. following the LOOP statement marking the end of the loop.  A conditional
  113. exit may be created by using EXIT as part of an IF/THEN construct.
  114.  
  115. EXIT provides a way of terminating a DO/LOOP at a point other than the
  116. beginning or end.  There is no limit to the number of EXIT statements
  117. allowed within a DO/LOOP.
  118.  
  119. Examples:
  120.  
  121. 10 EXIT
  122. 20 IF A>10 THEN EXIT
  123. 30 DO: READ A: IF A<0 THEN EXIT: ELSE PRINT A: LOOP
  124.  
  125. ---------------------------------------
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133. FILTER [<voice# [,<sum>]> ,<enable> [,<cutoff> [,<filtyp> [,<reson>]]]]
  134.  
  135. The FILTER statement allows control of the filtering capabilities of the
  136. SID chip.  The effect of filtering is to diminish or remove selected
  137. frequencies from one or more voices.
  138.  
  139. The three-part parameter <voice#> [, <sum>], <enable> turns filtering of a
  140. voice on and off.  <Voice#> [,<sum>] has the same form and behavior as with
  141. the ENVELOPE statement.  <Enable> turns filtering on for <voice#> if it is
  142. non-zero, and off if it is zero.  Voices not selected by <voice#> are not
  143. affected.  It is recommended that only one voice at a time be filtered.
  144.  
  145. <Cutoff> may range from 0 to 2047.  The actual cutoff frequency ranges from
  146. about 30 Hz to about 12000 Hz according to the formula:
  147.  
  148. frequency = <cutoff> * 5.8 + 30 Hz
  149.  
  150. <Filtyp> ranges from 0 to 3, choosing one of four types of filtering.  A
  151. <filtyp> of 0 gives a low-pass filter  (frequencies above the cutoff
  152. frequency are diminished), 1 a high-pass (frequencies below the cutoff are
  153. diminished), 2 a band-pass (frequencies both above and below the cutoff are
  154. diminished), and 3 a band-reject (frequencies at and close to the cutoff
  155. are diminished).
  156.  
  157. <Reson> controls filter resonance, which peaks the volume of frequencies
  158. nearest the cutoff.  This value may range from 0 (minimum resonance) to 15
  159. (maximum resonance).
  160.  
  161. Parameters not specified retain their current values.  The default values
  162. of <cutoff>, <filtype>, and <reson> are all zero.
  163.  
  164. Examples:
  165.  
  166. 10 FILTER 1, 1, 1024, 2, 8
  167. 20 FILTER 0, 7, 0
  168. 30 FOR I=100 TO 1500: FILTER , I , , I/100 : NEXT
  169.  
  170. ---------------------------------------
  171.  
  172. FMT$(<nexp>, <format$>)
  173.  
  174. The FMT$() function returns a string representing a formatted number.
  175. <Nexpr> can be any numeric expression.  <Format$> can be any string
  176. expression which describes a legal format.
  177.  
  178. Six different characters may appear in a <format$>: "#", "0", "*", ".",
  179. "+", and "-".  The first three are numeric placeholders, the next is the
  180. decimal point, and the last two are "sign" characters.  A legal <format$>
  181. is a string of these six characters in any combination and order up to 24
  182. characters long, except that only one of the characters may be a decimal
  183. point.
  184.  
  185. Numeric placeholder characters reserve places for digit characters in the
  186. returned string.  If there are more placeholders than digits, the "0" and
  187. "*" characters remain as they are in the returned string, but the "#"
  188. character is replaced by a space.
  189.  
  190. The "." character marks where the decimal point should appear.  If
  191. <format$> does not include a decimal point, one is considered to be located
  192. one character to the right of the last character in <format$>.
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200. The "+" and "-" sign characters may be placed anywhere in <format$>.  The
  201. "-" character explicitly signs only negative values of <nexp>, otherwise
  202. being replaced by a space.  "+" explicitly signs all values of <nexp> with
  203. either "-" (if negative) or "+" (if positive).
  204.  
  205. FMT$() does not round <nexp> to fit <format$>.  If <nexpr> is larger than
  206. will fit in <format$>, an "overflow" string of all "*"'s will be returned.
  207. If <nexpr> is too small to fit in <format$>, an "underflow" string of all
  208. "-"'s will be returned.  If <format$> is the null string the null string
  209. will be returned.
  210.  
  211. Examples:
  212.  
  213. 10 PRINT FMT$(123, "####")
  214. 20 A$ = FMT$(A, "***0.00")
  215. 30 PRINT FMT$(A(I), "+###0.000")
  216.  
  217. ---------------------------------------
  218.  
  219. FRE(<exp>)
  220.  
  221. The FRE() function returns the number of bytes of RAM available for program
  222. text and variables.  Unlike the V2 Basic version, FRE() always returns a
  223. positive number.  If a program tries to use more space than is available,
  224. an "?OUT OF MEMORY" error occurs.
  225.  
  226. Like the V2 Basic version, executing FRE() triggers a "garbage collection"
  227. to reclaim unused dynamic string variable space.  The EVS Basic version of
  228. this process is much faster than the V2 Basic version, resulting in much
  229. shorter "garbage collection" delays.
  230.  
  231. Examples:
  232.  
  233. 10 A = FRE(0)
  234. 20 PRINT "THERE ARE"; FRE(0); "BYTES FREE."
  235.  
  236.